cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
↳ QTRS
↳ AAECC Innermost
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
COND(true, x, y) → ADD(x, y)
ADD(s(x), y) → ADD(x, y)
COND(true, x, y) → GR(x, y)
GR(s(x), s(y)) → GR(x, y)
COND(true, x, y) → COND(gr(x, y), x, add(x, y))
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
COND(true, x, y) → ADD(x, y)
ADD(s(x), y) → ADD(x, y)
COND(true, x, y) → GR(x, y)
GR(s(x), s(y)) → GR(x, y)
COND(true, x, y) → COND(gr(x, y), x, add(x, y))
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
ADD(s(x), y) → ADD(x, y)
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
ADD(s(x), y) → ADD(x, y)
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
ADD(s(x), y) → ADD(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
GR(s(x), s(y)) → GR(x, y)
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
GR(s(x), s(y)) → GR(x, y)
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
GR(s(x), s(y)) → GR(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
COND(true, x, y) → COND(gr(x, y), x, add(x, y))
cond(true, x, y) → cond(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
COND(true, x, y) → COND(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
cond(true, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
cond(true, x0, x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
COND(true, x, y) → COND(gr(x, y), x, add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
(1) (COND(gr(x0, x1), x0, add(x0, x1))=COND(true, x2, x3) ⇒ COND(true, x0, x1)≥COND(gr(x0, x1), x0, add(x0, x1)))
(2) (gr(x0, x1)=true ⇒ COND(true, x0, x1)≥COND(gr(x0, x1), x0, add(x0, x1)))
(3) (true=true ⇒ COND(true, s(x5), 0)≥COND(gr(s(x5), 0), s(x5), add(s(x5), 0)))
(4) (gr(x6, x7)=true∧(gr(x6, x7)=true ⇒ COND(true, x6, x7)≥COND(gr(x6, x7), x6, add(x6, x7))) ⇒ COND(true, s(x6), s(x7))≥COND(gr(s(x6), s(x7)), s(x6), add(s(x6), s(x7))))
(5) (COND(true, s(x5), 0)≥COND(gr(s(x5), 0), s(x5), add(s(x5), 0)))
(6) (COND(true, x6, x7)≥COND(gr(x6, x7), x6, add(x6, x7)) ⇒ COND(true, s(x6), s(x7))≥COND(gr(s(x6), s(x7)), s(x6), add(s(x6), s(x7))))
POL(0) = 0
POL(COND(x1, x2, x3)) = -1 - x1 + x2 - x3
POL(add(x1, x2)) = x1
POL(c) = -1
POL(false) = 0
POL(gr(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
COND(true, x, y) → COND(gr(x, y), x, add(x, y))
The following rules are usable:
COND(true, x, y) → COND(gr(x, y), x, add(x, y))
true → gr(s(x), 0)
false → gr(0, x)
x → add(0, x)
gr(x, y) → gr(s(x), s(y))
s(add(x, y)) → add(s(x), y)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ QDP
↳ PisEmptyProof
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)